#pragma once
#include <map>
#include "CommonDef.h"
class ChessAnalyse
{
public:
    ChessAnalyse(const std::vector<Chess>& analyseChessVec);

    ~ChessAnalyse();

    const std::vector<PrivilageChess> checkPrivilageChess();

private:
    const std::vector<PrivilageChess> checkTingChess();

    const std::vector<PrivilageChess> checkFengChess(const std::vector<Chess>& fengChessVec);

    const std::vector<PrivilageChess> checkNormalChess(const std::vector<Chess>& normalChessVec);
private:
    bool addChessCheckWin(std::vector<Chess> tingChess, const Chess& winChess);

    static bool isMidChessCunt(short chessCunt);

    static const std::vector<PrivilageChess> Chess1Check(const std::vector<Chess>& normalChessVec);

    static const std::vector<PrivilageChess> Chess2Check(const std::vector<Chess>& normalChessVec);

    static const std::vector<PrivilageChess> Chess3Check(const std::vector<Chess>& normalChessVec);

    static const std::vector<PrivilageChess> Chess4Check(const std::vector<Chess>& normalChessVec);

    static const std::vector<PrivilageChess> Chess5Check(const std::vector<Chess>& normalChessVec);
private:
    std::vector<Chess> m_analyseChessVec;
};

